/*
 * Floor.h
 *
 *  Created on: 15/04/2013
 *      Author: juan
 */

#ifndef FLOOR_H_
#define FLOOR_H_

#include "Figure.h"
#include "Cube.h"
#include <list>

using namespace std;

class Floor: public Figure {
private:
	GLuint* index_internal_buffer;
	GLuint index_internal_buffer_size;
	GLfloat* normal_internal_buffer;
	GLuint normal_internal_buffer_size;
	GLfloat* normal_external_buffer;
	GLuint normal_external_buffer_size;
	list<Cube*>* cubos;
	void create_vertex_buffer(GLuint program);
	void create_index_buffer();
	//Las normales seran con z positivos, si se incluye esta forma en otro objeto habra que tenerlo en cuenta.

public:
	Floor(GLuint  program);
	virtual ~Floor();

	virtual void draw(GLuint program, glm::mat4 & world_matrix);

	virtual void set_texture_id(GLuint id);
};

#endif /* FLOOR_H_ */
